package com.simpou.commons.utils.behavior;

import com.simpou.commons.utils.exception.model.RuleViolation;


/**
 * Representa um validador de objetos.
 *
 * @author Jonas Pereira
 * @since 2012-07-25
 * @version 2013-05-31
 */
public interface Validator<T> {
    /**
     * @param obj Objeto a ser validado.
     * @return null se objeto válido. Se inválido retorna o motivo ou lança unchecked exceptions.
     */
    RuleViolation validate(final T obj);
}
